package com.thefinestartist.utils.etc; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.MediumTest; import android.test.suitebuilder.annotation.SmallTest; import com.thefinestartist.Base; import com.thefinestartist.utils.preferences.PreferencesUtil; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; /** * Tests of the {@link PreferencesUtil} class. * * @author Robin Gustafsson */ public class PreferencesUtilTest extends AndroidTestCase { @Override public void setUp() throws Exception { super.setUp(); Base.initialize(getContext()); } @SmallTest public void testSetGetDefaultName() { final String expected = "TEST_DEFAULT_NAME"; PreferencesUtil.setDefaultName(expected); String actual = PreferencesUtil.getDefaultName(); assertEquals(expected, actual); } @SmallTest public void testDifferentNames() { final String name1 = "TEST_DIFFERENTNAMES_NAME1"; final String name2 = "TEST_DIFFERENTNAMES_NAME2"; final String key = "TEST_DIFFERENTNAMES_KEY"; final boolean value = true; final boolean expected = false; PreferencesUtil.put(name1, key, value); boolean actual = PreferencesUtil.get(name2, key, expected); assertEquals(expected, actual); } @SmallTest public void testStoreBoolean() { final String key = "TEST_BOOLEAN"; final boolean expected = true; final boolean defValue = false; PreferencesUtil.put(key, expected); boolean actual = PreferencesUtil.get(key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreBooleanNamed() { final String name = "TEST_NAMED"; final String key = "TEST_BOOLEAN"; final boolean expected = true; final boolean defValue = false; PreferencesUtil.put(name, key, expected); boolean actual = PreferencesUtil.get(name, key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreInt() { final String key = "TEST_INT"; final int expected = 321; final int defValue = 0; PreferencesUtil.put(key, expected); int actual = PreferencesUtil.get(key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreIntNamed() { final String name = "TEST_NAMED"; final String key = "TEST_INT"; final int expected = 321; final int defValue = 0; PreferencesUtil.put(name, key, expected); int actual = PreferencesUtil.get(name, key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreFloat() { final String key = "TEST_FLOAT"; final float expected = 12.3f; final float defValue = 0.0f; PreferencesUtil.put(key, expected); float actual = PreferencesUtil.get(key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreFloatNamed() { final String name = "TEST_NAMED"; final String key = "TEST_FLOAT"; final float expected = 12.3f; final float defValue = 0.0f; PreferencesUtil.put(name, key, expected); float actual = PreferencesUtil.get(name, key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreLong() { final String key = "TEST_LONG"; final long expected = 321L; final long defValue = 0L; PreferencesUtil.put(key, expected); long actual = PreferencesUtil.get(key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreLongNamed() { final String name = "TEST_NAMED"; final String key = "TEST_LONG"; final long expected = 321L; final long defValue = 0L; PreferencesUtil.put(name, key, expected); long actual = PreferencesUtil.get(name, key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreString() { final String key = "TEST_STRING"; final String expected = "Lorem ipsum"; final String defValue = null; PreferencesUtil.put(key, expected); String actual = PreferencesUtil.get(key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreStringNamed() { final String name = "TEST_NAMED"; final String key = "TEST_STRING"; final String expected = "Lorem ipsum"; final String defValue = null; PreferencesUtil.put(name, key, expected); String actual = PreferencesUtil.get(name, key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreStringSet() { final String key = "TEST_STRINGSET"; final Set<String> expected = new HashSet<>(); expected.add("Lorem ipsum"); expected.add("dolor sit amet"); expected.add("consectetur adipiscing elit"); final Set<String> defValue = null; PreferencesUtil.put(key, expected); Set<String> actual = PreferencesUtil.get(key, defValue); assertEquals(expected, actual); } @SmallTest public void testStoreStringSetNamed() { final String name = "TEST_NAMED"; final String key = "TEST_STRINGSET"; final Set<String> expected = new HashSet<>(); expected.add("Lorem ipsum"); expected.add("dolor sit amet"); expected.add("consectetur adipiscing elit"); final Set<String> defValue = null; PreferencesUtil.put(name, key, expected); Set<String> actual = PreferencesUtil.get(name, key, defValue); assertEquals(expected, actual); } @MediumTest public void testStoreSerializable() { final String key = "TEST_SERIALIZABLE"; final ArrayList<String> expected = new ArrayList<>(); expected.add("Lorem ipsum"); expected.add("dolor sit amet"); expected.add("consectetur adipiscing elit"); final ArrayList<String> defValue = new ArrayList<>(); defValue.add("Proin mollis dictum"); PreferencesUtil.put(key, expected); ArrayList<String> actual = PreferencesUtil.get(key, defValue); assertEquals(expected, actual); } @MediumTest public void testStoreSerializableNamed() { final String name = "TEST_NAMED"; final String key = "TEST_SERIALIZABLE"; final ArrayList<String> expected = new ArrayList<>(); expected.add("Lorem ipsum"); expected.add("dolor sit amet"); expected.add("consectetur adipiscing elit"); final ArrayList<String> defValue = new ArrayList<>(); defValue.add("Proin mollis dictum"); PreferencesUtil.put(name, key, expected); ArrayList<String> actual = PreferencesUtil.get(name, key, defValue); assertEquals(expected, actual); } @SmallTest public void testRemove() { final String key = "TEST_REMOVE"; final String expected = null; PreferencesUtil.put(key, "Lorem ipsum"); PreferencesUtil.remove(key); String actual = PreferencesUtil.get(key, expected); assertEquals(expected, actual); } @SmallTest public void testRemoveNamed() { final String name = "TEST_NAMED"; final String key = "TEST_REMOVE"; final String expected = null; PreferencesUtil.put(name, key, "Lorem ipsum"); PreferencesUtil.remove(name, key); String actual = PreferencesUtil.get(name, key, expected); assertEquals(expected, actual); } @SmallTest public void testClear() { final String[] keys = {"TEST_REMOVE_1", "TEST_REMOVE_2", "TEST_REMOVE_2"}; final String expected = null; for (String key : keys) { PreferencesUtil.put(key, "Lorem ipsum"); } PreferencesUtil.clear(); for (String key : keys) { String actual = PreferencesUtil.get(key, expected); assertEquals(expected, actual); } } @SmallTest public void testClearNamed() { final String name = "TEST_NAMED"; final String[] keys = {"TEST_REMOVE_1", "TEST_REMOVE_2", "TEST_REMOVE_2"}; final String expected = null; for (String key : keys) { PreferencesUtil.put(name, key, "Lorem ipsum"); } PreferencesUtil.clear(name); for (String key : keys) { String actual = PreferencesUtil.get(name, key, expected); assertEquals(expected, actual); } } }